arm_compute v19.11
diff --git a/SConstruct b/SConstruct index 60eb286..c0cf6d6 100644 --- a/SConstruct +++ b/SConstruct
@@ -44,6 +44,7 @@ EnumVariable("os", "Target OS", "linux", allowed_values=("linux", "android", "bare_metal")), EnumVariable("build", "Build type", "cross_compile", allowed_values=("native", "cross_compile", "embed_only")), BoolVariable("examples", "Build example programs", True), + BoolVariable("gemm_tuner", "Build gemm_tuner programs", True), BoolVariable("Werror", "Enable/disable the -Werror compilation flag", True), BoolVariable("standalone", "Builds the tests as standalone executables, links statically with libgcc, libstdc++ and libarm_compute", False), BoolVariable("opencl", "Enable OpenCL support", True), @@ -126,11 +127,11 @@ env.Append(CPPDEFINES = ['ARM_COMPUTE_EXCEPTIONS_DISABLED']) env.Append(CXXFLAGS = ['-fno-exceptions']) -env.Append(CXXFLAGS = ['-Wno-deprecated-declarations','-Wall','-DARCH_ARM', - '-Wextra','-Wno-unused-parameter','-pedantic','-Wdisabled-optimization','-Wformat=2', +env.Append(CXXFLAGS = ['-Wall','-DARCH_ARM', + '-Wextra','-pedantic','-Wdisabled-optimization','-Wformat=2', '-Winit-self','-Wstrict-overflow=2','-Wswitch-default', - '-fpermissive','-std=gnu++11','-Wno-vla','-Woverloaded-virtual', - '-Wctor-dtor-privacy','-Wsign-promo','-Weffc++','-Wno-format-nonliteral','-Wno-overlength-strings','-Wno-strict-overflow']) + '-fpermissive','-std=gnu++11','-Woverloaded-virtual', '-Wformat-security', + '-Wctor-dtor-privacy','-Wsign-promo','-Weffc++','-Wno-overlength-strings']) env.Append(CPPDEFINES = ['_GLIBCXX_USE_NANOSLEEP']) @@ -143,9 +144,11 @@ print( "WARNING: Only clang is officially supported to build the Compute Library for Android") if 'clang++' in cpp_compiler: - env.Append(CXXFLAGS = ['-Wno-format-nonliteral','-Wno-deprecated-increment-bool','-Wno-vla-extension','-Wno-mismatched-tags']) + env.Append(CXXFLAGS = ['-Wno-vla-extension']) +elif 'armclang' in cpp_compiler: + pass else: - env.Append(CXXFLAGS = ['-Wlogical-op','-Wnoexcept','-Wstrict-null-sentinel', '-Wno-redundant-move']) + env.Append(CXXFLAGS = ['-Wlogical-op','-Wnoexcept','-Wstrict-null-sentinel']) if env['cppthreads']: env.Append(CPPDEFINES = [('ARM_COMPUTE_CPP_SCHEDULER', 1)]) @@ -159,6 +162,7 @@ env.Append(CXXFLAGS = ['-fopenmp']) env.Append(LINKFLAGS = ['-fopenmp']) +# Add architecture specific flags prefix = "" if env['arch'] == 'armv7a': env.Append(CXXFLAGS = ['-march=armv7-a', '-mthumb', '-mfpu=neon']) @@ -174,15 +178,13 @@ env.Append(CXXFLAGS = ['-mfloat-abi=softfp']) elif env['arch'] == 'arm64-v8a': env.Append(CXXFLAGS = ['-march=armv8-a']) - env.Append(CPPDEFINES = ['ARM_COMPUTE_AARCH64_V8A','NO_DOT_IN_TOOLCHAIN']) + env.Append(CPPDEFINES = ['ARM_COMPUTE_AARCH64_V8A']) if env['os'] == 'linux': prefix = "aarch64-linux-gnu-" elif env['os'] == 'bare_metal': prefix = "aarch64-elf-" elif env['os'] == 'android': prefix = "aarch64-linux-android-" - if 'clang++' in cpp_compiler: - env.Append(CXXFLAGS = ['-no-integrated-as']) elif 'arm64-v8.2-a' in env['arch']: if env['arch'] == 'arm64-v8.2-a-sve': env.Append(CXXFLAGS = ['-march=armv8.2-a+sve+fp16+dotprod']) @@ -194,9 +196,7 @@ prefix = "aarch64-elf-" elif env['os'] == 'android': prefix = "aarch64-linux-android-" - env.Append(CPPDEFINES = ['ARM_COMPUTE_AARCH64_V8_2','NO_DOT_IN_TOOLCHAIN']) - if 'clang++' in cpp_compiler: - env.Append(CXXFLAGS = ['-no-integrated-as']) + env.Append(CPPDEFINES = ['ARM_COMPUTE_AARCH64_V8_2']) elif env['arch'] == 'x86_32': env.Append(CCFLAGS = ['-m32']) env.Append(LINKFLAGS = ['-m32']) @@ -225,7 +225,9 @@ print("ERROR: Compiler '%s' not found" % env['CXX']) Exit(1) - if 'clang++' not in cpp_compiler: + if 'armclang' in cpp_compiler: + pass + elif 'clang++' not in cpp_compiler: if env['arch'] == 'arm64-v8.2-a' and not version_at_least(compiler_ver, '6.2.1'): print("GCC 6.2.1 or newer is required to compile armv8.2-a code") Exit(1)